#define _CRT_SECURE_NO_WARNINGS
#ifndef _list_h_
#define _list_h_

#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<string.h>
#include<setjmp.h>
#include<stdbool.h>

typedef struct st
{
	int r;
	int c;
}st;

typedef st ln_data_type;
typedef struct ListNode
{
	ln_data_type data;
	struct ListNode* next;
	struct ListNode* prev;
}ListNode;

ListNode* list_inite();
void list_print(ListNode* head);

void list_push_back(ListNode* head, ln_data_type x);
void list_push_front(ListNode* head, ln_data_type x);
void list_pop_back(ListNode* head);
void list_pop_front(ListNode* head);

//ListNode* list_find(ListNode* head, ln_data_type x);
void list_insert_back(ListNode* pos, ln_data_type x);
void list_insert_front(ListNode* pos, ln_data_type x);
void list_erase(ListNode* head,ListNode* pos);

ln_data_type list_head(ListNode* head);
ln_data_type list_tail(ListNode* head);

void list_destory(ListNode* head);

#endif // !_list_h_
